1. Field of the Invention
The present disclosure relates to processing data in a packet-switched network. In particular, but not exclusively, the present disclosure relates to processing voice data in a packet-switched network.
2. Description of the Related Technology
Real-time multimedia communication over packet-switched networks, for example using Internet Protocol (IP), requires that a media stream is recorded at one end, sampled, split into small chunks, transmitted over a communications channel, received and played out at the receiver's end.
In an ideal world, the media packets are transmitted by the sender and received by the receiver at precisely the same rate, thus the receiver has an accurate reproduction of what the sender recorded.
In practice, however, there is a degree of variability in the transmission speed of each packet, due to the idiosyncrasies of the network through which the packets pass. This variance is called jitter, and it is considered an undesirable phenomenon. High levels of jitter will cause ‘gaps’ to appear in the media stream as perceived by the receiver; in an audio call, for example, this may be heard as a ‘stuttering’ or ‘hiccupping’ sound.
A common solution to this problem is to implement a jitter buffer. Jitter buffers store up packets as they arrive and then, after a short delay, play them out from the buffer at a constant rate. As long as the buffer is large enough, it can absorb jitter-induced gaps in the input stream, playing out its stored up packets such that no corresponding gap is present in the output stream.
FIG. 1 depicts normal operation of a jitter buffer 102 where a jittery input stream of packets 100 passes into jitter buffer 102 and then out of jitter buffer 102 to produce an output stream of packets 104. Jittery input stream 100 includes a burst of packets 106 which can be seen to cause jitter buffer 102 to start filling up 108. Jittery input stream 100 also includes a gap 110 containing no packets which can be seen to cause jitter buffer 102 to start emptying 112. In this case, the jitter buffer is able to absorb the burst and gap in the input stream such that the output stream contains a constant output (or ‘play-out’) packet rate 114.
If there is sufficiently high jitter on the input stream, then a given jitter buffer may become ineffective. Specifically, this will happen is there is a gap in the input stream that exceeds the jitter buffer's nominal capacity. In this case, the jitter buffer has played out all the packets it contains, and cannot therefore play out any more. The result is a noticeable and undesirable gap in the output media stream that is perceived by the receiver.
FIG. 2 depicts operation of a jitter buffer 102 where a gap in the output stream is caused by a depleted jitter buffer. As in FIG. 1, a jittery input stream of packets 100 passes into jitter buffer 102 and then out of jitter buffer 102 to produce an output stream of packets 104. Also as in FIG. 1, jittery input stream 100 includes a burst of packets 106 which can be seen to cause jitter buffer 102 to start filling up 108 and a gap 110 containing no packets which can be seen to cause jitter buffer 102 to start emptying 112. However, in this case, the size/length/duration of gap 110 exceeds the capacity of jitter buffer 102 such that jitter buffer 102 empties 116 and is unable to provide any further packets to play-out, resulting in a gap appearing 118 in output stream 104.
Gaps in the output media stream can be mitigated by increasing the size of the jitter buffer. However, increasing the size of the jitter buffer increases the transmission delay between sender and receiver, which can lead to undesirable effects (such as increased echo on the line). Further, the jitter buffer may be restricted (for example by hardware and/or software constraints) to a maximum size that is insufficient to absorb all the jitter on the stream. Still further, in the case of a network administrator, the jitter buffer in question may not be under their control, for example if it resides in a downstream piece of equipment.
It would therefore be desirable to provide improved measures for processing data in packet-switched networks.